Contained herein is material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction of the patent disclosure by any person as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all rights to the copyright whatsoever.
1. Field of the Invention
The invention relates generally to driving heterogeneous devices from an output server. More particularly, the invention relates to a flexible mechanism which allows jobs containing formatted data, such as image data, to be submitted to arbitrary devices.
2. Description of the Related Art
Print servers, such as the IBM(copyright) InfoPrint(copyright) Manager, traditionally provide for central management of a printing environment. A simplified printing scenario in a local area network (LAN) environment will briefly be described with reference to FIG. 1. In this example, a personal computer workstation 100 is coupled to a print server 120 via a LAN 110. The print server 120 includes a spooler 130 for controlling the spooling of data files and presentation services 140 for generating appropriate commands to drive an attached printer. The print server 120 may also include other components that are not shown for performing basic tasks, such as monitoring and configuring attached printers, and providing print job management. At any rate, when the PC workstation 120 has data to print, it sends print data to the print server 120. Among the functions typically provided by a print server is the conversion of the data stream containing the print data to a data stream supported by the printer to which the print data is destined. In this example, the print server 120 is coupled to a first printer 150 and a second printer 160. The two printers 150 and 160 may each respond to different data streams. For instance, the first printer 150 may accept the Intelligent Printer Data Stream (IPDS) and the second printer 160 may accept PostScript. Therefore, the print server 120 must provide a means for converting between the various input data streams that may be received and the two data streams accepted by the printers 150 and 160. While in this simplified example only two types of printers have been shown, it should be appreciated that real world printing environments may include many different types of printers.
Increasingly, this is the case in professional printing environments, such as commercial and production printing environments which are becoming more and more diverse. While print servers typically support diverse printing environments, such support is costly in terms of the development effort required to modify the print server software in existing inflexible architectures. For example, in order to accommodate a new data stream, it is common to add a new complex printer driver to the print server. In existing print server architectures, these print drivers must typically be developed from scratch to incorporate the rich set of features that users have come to expect. This rewriting of code is required because typically the print server""s capabilities and transforms are coded for a particular type of data stream and for a particular path through the print server. Also impacting the development efforts, is the inherent difficulty in manipulating the complex data streams that are received by print servers and transforming them into equally complex data streams required by printers. In view of the foregoing, it is desirable to provide a flexible and extensible architecture that allows support for new output devices to be added easily and inexpensively.
Another problem associated with existing print servers is the limited range of output devices supported. It is often desirable to present or deliver information in a form other than printer hard copy. Therefore, it would be advantageous to provide a mechanism to support output to destinations including fax and email, for example.
Prior art output servers also have other significant limitations which perplex end users. Fax servers report the fact that they have successfully transmitted a fax job. However, there is no indication of the success or failure of the job being received and/or handled at the destination. Often, unwary end users are surprised to discover that their xe2x80x9csuccessfulxe2x80x9d job was not successful at the receiving end. Similar limitations exist in printer control protocols that only report the success or failure of a print job being converted to image. Therefore, it is desirable to provide a mechanism by which additional job and device status may be provided to the end user.
A flexible and extensible virtual printer architecture is described. According to one aspect of the present invention, a mechanism is provided for driving multiple heterogeneous presentation devices. A presentation job is received on behalf of a presentation device, the presentation job includes a data stream which contains source data in the form of text, image, graphics, and/or other embedded objects. The source data is then reduced to an intermediate format. Based upon the intermediate format and control information associated with the data stream, device-specific data and device-specific control information are generated for the presentation device. Finally, the presentation device is driven by providing the device-specific data and device-specific control information to the presentation device.
According to another aspect of the present invention, a device independent data stream corresponding to a presentation job is received and transformed into a data stream which may be used to drive a particular presentation device. The device independent data stream includes data that is formatted according to a widely supported format. The data is converted to a device dependent format. One or more presentation units capable of containing device-specific data and device-specific control information are generated for the presentation device and the presentation device is driven with a natively supported data stream that includes the one or more presentation units.
Other features of the present invention will be apparent from the accompanying drawings and from the detailed description which follows.